1 /**
2  A module with tests to test the compile-time reflection
3  */
4 
5 module unit_threaded.ut.modules.module_with_tests;
6 
7 import unit_threaded.attrs;
8 
9 version (unittest) {
10     import std.meta;
11     import unit_threaded.should;
12 
13     //test functions
14     void testFoo() {
15     }
16 
17     void testBar() {
18     }
19 
20     private void testPrivate() {
21     } //should not show up
22     @UnitTest void funcThatShouldShowUpCosOfAttr() {
23     }
24 
25     //non-test functions
26     private void someFun() {
27     }
28 
29     private void testosterone() {
30     }
31 
32     private void tes() {
33     }
34 
35     //non-test non-functions
36     int testInt;
37 
38     //test classes
39     class FooTest {
40         void test() {
41         }
42     }
43 
44     class BarTest {
45         void test() {
46         }
47     }
48 
49     @UnitTest class Blergh {
50     }
51 
52     //non-test classes
53     class NotATest {
54         void tes() {
55         }
56     }
57 
58     class AlsoNotATest {
59         void testosterone() {
60         }
61     }
62 
63     @HiddenTest void withHidden() {
64     }
65 
66     void withoutHidden() {
67     }
68 
69     //other non-test members
70     alias seq = AliasSeq!(int, float, string);
71 }
72 
73 unittest {
74     //1st block
75     assert(true);
76 }
77 
78 unittest {
79     //2nd block
80     assert(true);
81 }
82 
83 @Name("myUnitTest")
84 unittest {
85     assert(true);
86 }
87 
88 struct StructWithUnitTests {
89     alias SelfSoDontRecurseForever = StructWithUnitTests;
90 
91     @Name("InStruct")
92     unittest {
93         assert(false);
94     }
95 
96     unittest {
97         // 2nd inner block.
98         assert(true);
99     }
100 }
101 
102 // github issue #26 - template instance GetTypes!uint does not match template declaration
103 alias RGB = uint;
104 
105 import unit_threaded : TestCase;
106 
107 class Issue83 : TestCase {
108     this() {
109     }
110 
111     override void test() {
112     }
113 }